操作系统一
操作系统引论
操作系统概念
定义
计算机系统中的一个系统软件,是程序模块的集合
(有效、合理、方便)
目标
- 方便性
- 有效性:提高系统资源利用率、提高系统吞吐量
- 可扩充性
- 开放性:软硬件兼容
作用
作为用户与硬件之间的接口

计算机系统资源的管理者
硬件资源
软件资源
实现了对计算机资源的抽象
覆盖了一系列软件(I/O 操作命令、文件管理等)后成为虚机器

推动 OS 发展的动力
- 不断提高计算机资源利用率
- 方便用户
- 器件的不断更新与迭代
- 计算机体系结构的不断发展
- 不断提出新的应用需求
操作系统的发展过程
-
人工操作
-
脱机 / 假脱机(SPOOLing)方式
- 事先将装有用户程序和数据的纸带装入纸带输入机,在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上
- 当 CPU 需要这些程序和数据时,再从磁带上高速调入内存。
- 当 CPU 需要输出时,先由 CPU 把数据直接从内存高速地输送到磁带上,然后在另一台外围机的控制下,再将磁带上的结果通过相应的输出设备输出。
-
单道批处理
- 首先由监督程序将磁带上的第一个作业装入内存,并将运行控制权交给该作业;
- 当该作业处理完成时,又把控制权交还给监督程序,再由监督程序吧磁带上的第二个作业调入内存。
- 计算机系统就这样自动地一个作业紧接着一个作业地进行处理,直至磁带上的所有作业全部完成
- 特点
- 自动性、顺序性、单道性(内存中仅有一道程序)

多道批处理
(并发)
利用 A 程序的 I/O 操作而暂停执行 CPU 空挡时间,调度 B 程序运行

特点
- 资源利用率高
- 系统吞吐量大
- 平均周转时间长(需要排队依次进行处理)
- 无交互能力(修改和调试程序不方便)
需要解决的问题
- 处理机争用问题
- 内存分配和保护问题
- I/O 设备分配问题
- 文件的组织和管理问题
- 作业管理问题
- 用户与系统的接口问题
(多道、单道的比较)
分时系统
-
人机交互、共享主机
-
时间片(time slice):一段很短的时间,用来切割 CPU
关键问题
- 系统首先必须能提供多个终端,同时给多个用户使用;
- 其次,当用户在自己的终端上键入命令时,系统应能及时接收、并及时处理该命令,再将结果返回给用户。
-
及时接收
- 要做到及时接收多个用户键入的命令或数据,只需在系统中配置一个多路卡即可(多路卡实现分时多路复用,使主机能同时接收各用户从终端上输入的数据)
- 此外,还须为每个终端配置一个缓冲区,用来暂存用户键入的命令(或数据)。
-
及时处理
- 人-机交互的关键在于,用户键入命令后能对自己的作业机器运行及时地实施控制,或进行修改。因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。
- 作业直接进入内存
- 采用轮转运行方式
- 人-机交互的关键在于,用户键入命令后能对自己的作业机器运行及时地实施控制,或进行修改。因此,各个用户的作业都必须驻留在内存中,并能频繁地获得处理机运行。
-
特征
-
多路性
该特性是指系统允许将多台终端同时连接到一台主机上,并按分时原则为每个用户服务。多路性允许多个用户共享一台计算机,显著地提高了资源利用率,降低了使用费用,从而促进了计算机更广泛的应用。
-
独立性
该特性是指系统提供了这样的用机环境,即每个用户在各自的终端上进行操作,彼此之间互不干扰,给用户的感觉就像是他一人独占主机进行操作。
-
及时性
该特性是指用户的请求能在很短时间内获得相应。这一时间间隔是根据人们所能接收的等待时间确定的,通常仅为 1~3 秒钟。
-
交互性
该特性是指用户可通过终端与系统进行广泛的人机对话。其广泛性表现在:用户可以请求系统提供多方面的服务。
实时系统
(Real time system)
计算机对所接收到的信号做出及时或实时的反应
实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。
实时任务的类型
-
周期性实时任务和非周期性实时任务
周期性实时任务:外部设备周期性地发出激励信号给计算机,要求它按规定周期循环执行,以便周期性地控制某外部设备。
非周期性实时任务:无明显周期性,但联系着一个截止时间,或称为最终期限。它可分为:
- 开始截止时间:某任务在某时间以前必须开始执行
- 完成截止时间:某任务在某时间以前必须完成
-
硬实时任务和软实时任务
硬实时任务:系统必须满足任务对截止时间的要求
软实时任务:也联系着一个截止时间,但并不严格,若偶尔错过了任务的截止时间,对系统产生的影响也不会太大。
分时系统和实时系统的比较
微机操作系统
单用户单任务操作系统
MS-DOS
单用户多任务操作系统
Windows XP
多用户多任务操作系统
UNIX,Linux
操作系统的基本特 性
并发
(Concurrence)多时间在同一时间段内发生
多道程序宏观上并发,微观上交替执行
引入进程(Process)
未引入进程系统:计算和 I/O 顺序执行
引入进程系统:为计算程序和 I/O 程序分别建立一个进程,两个进程可并发进行
线程(Threads)
比进程更小的单位
共享
(Sharing)系统中的资源可供内存中多个并发执行的进程(线程)共同使用
- 互斥共享(音频设备、打印机)
- 同时访问(磁盘文件、可重入代码)
虚拟
(Virtual)把一个物理实体变为若干个逻辑上的对应物
如
- CPU:每个进程的虚处理机
- 存储器:每个进程占有的地址空间(指令+数据+堆栈)
- 显示设备:多 窗口或虚拟终端
- 打印设备:将临界资源变成同时访问资源
方法
- 时分复用
- 虚拟处理机技术、虚拟设备技术
- 空分复用
- 对存储空间的管理,实际上是内存的分时复用
异步
(Asynchronism)
也称不确定性 / 随机,指进程的执行顺序和执行时间的不确定性
并发执行的程序走走停停,不可预知
操作系统的主要功能
- 资源管理
- 处理机管理(硬件)
- 存储器管理(硬件)
- 设备管理(硬件)
- 文件管理(软件)
- 用户接口
- 命令接口
- 图形接口
- 程序接口
处理机管理功能
-
进程控制:创建、撤销、状态迁移
-
进程同步:互斥访问临界资源
-
进程通信:进程合作
-
调度
- 作业调度:按照算法为作业分配资源
- 进程调度:按照算法先后执行进程
存储器管理功能
-
内存分配
- 为每道程序分配内存空间
- 提高存储器利用率,减少内存碎片
- 满足正在运行的程序数据动态增长的需要
- 分类
- 静态分配
- 动态分配
-
内存保护
- 每道程序在自己的内存空间内运行,彼此互不干扰
- 不允许用户访问操作系统的程序与数据
- 不允许用户转到非共享的其他用户程序
-
地址映射
- 能够将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址
-
内存扩充
- 借助虚拟存储技术,从逻辑上扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多,以便让更多的用户程序能并发运行。
- 功能
- 请求调入
- 置换
设备管理功能
主要任务
-
完成用户提出的 I/O 请求,并分配 I/O 设备
-
提高 I/O 利用率
主要内容
- 缓冲管理
- 在 I/O 设备和 CPU 中之间引入缓冲
- 设备分配
- 设备处理
- 虚拟设备
文件管理功能
-
文件存储空间的管理
- 为每个文件分配必要的外存空间,提高外存的利用率,进而提高文件系统的存取速度
-
目录管理
- 为每个文件建立一个目录项,目录项包括文件名、文件属性、文件在磁盘上的物理位置等,并对众多的目录项加以有效的组织,以实现方便的按名存取
-
文件的读 / 写管理和保护
-
文件的读 / 写管理
根据用户请求,从外存中读取数据,或将数据写入外存。
-
文件保护
放置未经核准的用户存取文件;放置冒名顶替存取文件;放置以不正确的方式存取文件
-
操作系统与用户之间的接口
用户接口
用户可以通过该接口向作业发出命令以控制作业的运行
命令接口(联机用户接口、脱机用户接口) + 图形用户接口
程序接口
由一组==系统调用==构成,它长得蛮像个库函数(API)
程序接口是为用户程序在执行中访问系统而设置的,是用户程序取得操作系统服务的唯一途径
一些概念
系统调用
系统调用是操作系统提供给应用程序 / 编程人员的唯一接口,它使 CPU 状态从用户态陷入内核态
内核
内核是一组程序模块,作为可信软件来提供支持进程并发执行的基本功能和基本操作
它驻留内核空间,运行于和心态,具有访问硬件设备和内存的全部权限,可以执行特权指令。
它是对操作系统核心功能的抽象概念
处理过程
用户使用系统调用(此时用户程序挂起),导致操作系统功能执行(此时从用户态陷入内核态),并返回用户请求的服务,用户程序恢复现场。
用户态
(user mode)非特权状态、目态
在此状态下,执行的代码被硬件限定,不能进行某些操作
核心态
特权状态、管态
核心态是操作系统内核所运行的模式,运行在该模式的代码,可以无限制地对系统存储、外部设备进行访问。
特权指令
管理硬件和系统安全,只能在核心态执行,用户程序不得含有特权指令。
现代操作系统的新功能
blabla
操作系统结构设计
传统 OS 结构
无结构操作系统
模块化结构 OS

- 模块独立性
- 内聚性
- 指模块内部各部分间联系的紧密程度。内聚性越高,模块独立性越强
- 耦合度
- 模块间相互联系和相互影响的程度。耦合度越低,模块独立性越强
- 内聚性
分层式结构 OS
在目标系统 An 和裸机系统 A0 之间,铺设若干个层次的软件 A1、A2、A3、…、An-1,使 An 通过 An-1、An-2、…、A2、A1 层,最终能在 A0 上运行。
自底向上的分层设计的基本原则是每一步设计都是建立在可靠的基础上,每一层仅能使用期底层所提供的功能和服务
客户 / 服务器模式
(Client / Server Model)
客户机、服务器、网络系统